﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Web;

namespace GDI_WCFServices
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IUtilizador" in both code and config file together.
    [ServiceContract]
    public interface IUtilizador
    {
        [OperationContract]
        [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, 
            BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "GravaAssinaturaDigitalizada")]
        CommonClasses.OperationReturnValue GravaPathAssinaturaDigitalizada(UpdateAssinaturaRequestData DataRequest);

        [OperationContract]
        [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, 
            BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "ConsultaSaldo")]
        double ConsultaDeSaldoActual(string UserID);

        [OperationContract]
        [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "DevolveDocumentosUser")]
        CommonClasses.Documento[] DevolveDocumentosUser(DocumentosUserRequestData DataRequest);

        [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "DevolveOperacoesUtilizador")]
        CommonClasses.Operacao[] DevolveOperacoesUtilizador(string UserID);

        [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Bare,
            UriTemplate = "PesquisaTags?query={Query}")]
        CommonClasses.TagsResponse PesquisaTags(string Query);
    }
}
